package day19;

class A {
	private static A a;
	static {
		a = new A(); // 在(类加载的时候就执行)静态代码块中创建一个A类对象。关键点：一开始就创建。
	}

	private A() {
	}; // 将自己的构造定义成私有的private，这样，在本类以外的类就不能调用该方法,达到了我们想要的不让别的类new该类

	public static A getA() {		
		return a;
	};
}

public class B {
	public static void main(String[] args) {
		A a1 = A.getA(); // 调用A类的getA()方法，得到一个对象。
		A a2 = A.getA(); // 再调用A类的getA()方法，再得到一个对象。
		System.out.println(a1 == a2); // 判断a1和a2是不是同一个对象，结果如果是true，则证明它们是同一个对象。
	}

}
